#pragma once
#include "fxcc/mono/pch.h"
#include "fxcc/mono/Clazz.h"
#include "fxcc/mono/Behivor.h"

namespace mono
{
    struct FXCC_API System
    {

        std::string m_Name{};

        MonoDomain* domain{0};

        std::map<std::string, std::shared_ptr<Behivor>> m_Behivors;

        bool m_Available{0};

        System(const std::string& name="Mono sys");

        bool Init();

        std::shared_ptr<Behivor> GetBehivor(const std::string& path);

        bool LoadBehivor(const std::string& dllPath);

        void Cleanup();

        ~System();
    };
}